Dynamic progress-towards-goal tracker

ABSTRACT

Systems and methods for tracking progress toward goals are described. An example computing system for a dynamic progress-towards-goal tracker includes a display, a logic machine, and a storage machine holding instructions executable by the logic machine to visually present a graph with an axis having an initial scale, and for each of a plurality of successive durations, receive a completion magnitude indicative of progress towards completion of a sub-goal for that duration. The instructions are further executable to, responsive to the completion magnitude exceeding a threshold for any duration, automatically increase a scale of the axis to an expanded scale that is greater than the initial scale, and, for each of the plurality of successive durations, visually present via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Application No. 62/055,588, filed Sep. 25, 2014, the entirety of which is hereby incorporated herein by reference.

BACKGROUND

Goal setting may be used as a tool to reach an overall achievement. Progress toward a goal may be tracked by recognizing the completion of incremental portions of the goal and/or the completion of the goal.

SUMMARY

An example computing system for a dynamic progress-towards-goal tracker includes a display, a logic machine, and a storage machine holding instructions executable by the logic machine to visually present via the display a graph with an axis having an initial scale, and for each of a plurality of successive durations, receive a completion magnitude indicative of progress towards completion of a sub-goal for that duration. The instructions are further executable to, responsive to the completion magnitude exceeding a threshold for any duration, automatically increase a scale of the axis to an expanded scale that is greater than the initial scale, and, for each of the plurality of successive durations, visually present via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example goal-assessment computing system.

FIG. 2 shows an example goal assessment page used to track progress towards a steps-per-day goal.

FIG. 3 shows the goal assessment page of FIG. 2 after being updated with additional steps.

FIG. 4 shows an example sub-goal assessment page used to track hourly sub-goals towards a steps-per-day goal.

FIG. 5 shows the sub-goal assessment page of FIG. 4 after being updated with additional steps.

FIG. 6 shows an example method of visually indicating progress towards completion of a sub-goal.

FIG. 7 shows an example computing system configured to track and report progress towards a goal.

DETAILED DESCRIPTION

Goal setting can be an effective tool. Once an individual sets a goal, it is useful for the individual to easily track progress towards completion of the goal.

An individual may have one or more goals. Some goals include a finite final target with a range of intermediate actions that can be taken towards reaching that target. As an example, an individual may set a 16,000 steps-per-day goal, and each step the individual takes in a particular day will bring the user 1/16,000 of the way towards successfully completing that goal. As another example, an individual may set a 30,000 calories-burned-per-week goal, and each calorie the individual burns in a particular week will bring the user 1/30,000 of the way towards successfully completing that goal. As still another example, an individual may set a 15,000 words-written-per-month goal, and each word the individual writes in a particular month will bring the user 1/15,000 of the way towards successfully completing the goal. Goals may even include a total amount of time spent doing a particular activity (e.g., studying, exercising, engaging in a hobby, and/or other activities) within a given duration of time (e.g., a day, a week, a month, a year, and/or any other suitable duration of time). The above are not limiting. A goal may have any magnitude, any duration, and/or any purpose.

A goal may be self-selected and/or a goal may be selected for the individual. As an example, a fitness tracker may set a default 10,000 steps-per-day goal for a new user of the fitness tracker, but the user may override the default goal with a self-selected 16,000 steps-per-day goal. As another example, a fitness tracker may set a default 10,000 steps-per-day goal for a new user of the fitness tracker, and the goal may be automatically adjusted to 20,000 steps-per-day after the user has averaged 20,000 steps-per-day in the previous two weeks.

Some goals may be divided into a plurality of sub-goals. Using the examples above, the 16,000 steps-per-day goal could be broken into sixteen 1,000 steps-per-waking-hour goals; the 30,000 calories-burned-per-week goal could be broken into seven 4,285 calories-per-day goals; and the 15,000 words-written-per-month goal could be broken into thirty 500 words-written-per day goals or 168 90 words-written-per-working-hour goals.

Sub-goals can be divided into equal increments, as indicated above, or sub-goals can be divided unequally. For example, before- and after-work hours may have higher sub-goals than work hours. When dividing goals into sub-goals, either equal or unequal, the sub-goals optionally can be rounded up or down. Sub-goals may be calculated according to a scheme that aligns with a user's preference. For example, sub-goals to achieve an overall 16,000 steps-per-day goal may be selected based on a Gaussian curve centered on noon. In this way, the user is encouraged by the sub-goals to gradually increase step activity in the morning, be most active during the day, and gradually decrease activity in the afternoon and evening. Other continuous or discrete distributions of sub-goals may be determined and presented, such as Laplace, log-normal, Weibull, Bernoulli, exponential, and/or other suitable data distributions. Other sub-goal schemes may be used, such as selecting hourly sub-goals that are equally spread out over the day, or that spike in the morning and evening when, for example, the user is not at work or school. The duration in which a sub-goal is set to be completed may be a portion of the duration in which a goal is set to be completed. For example, a sub-goal may be measured per hour (e.g., a number of steps taken within an hour) while an associated goal is measured per day (e.g., a total number of steps taken within a day). The duration in which the goal is set to be completed may include the aggregate amount of time in which each of the sub-goals for that goal is set to be completed.

Goals and sub-goals may be dynamically modified. As one example, a 16,000 steps-per-day goal may be an initial goal; and a 20,000 steps-per-day goal may be a challenge goal that automatically replaces the initial goal upon completion of the initial goal. As another example, a second-chance goal of 10,000 steps-per-day may automatically replace the initial 16,000 steps-per-day goal if an individual has not completed at least 4,000 steps, eight hours into the day. When a goal is modified in this manner, some or all of the corresponding sub-goals may also be modified. Goals and sub-goals may be dynamically modified up and/or down. The goals may be changed as any function of one or more variables in a stepped or continuous manner. Such variables may include, but are not limited to, units towards completion of the goal, completion percentage of the goal, and duration left to achieve goal.

A variety of different tools may be used to help an individual track progress towards completion of a goal and/or sub-goal. FIG. 1 shows a non-limiting example of a goal-assessment computing system 10 including a smart watch 12 and a smart phone 14. The goal-assessment computing system 10 may be configured to track progress towards completion of one or more goals and report such progress to an individual. While goal-assessment computing system 10 is provided as an example, other computing devices may be used to track and/or report progress towards goal completion. In general, a computing device may output visual, audible, and/or haptic cues that indicate progress towards goal completion.

Using the example of FIG. 1, a wearable device, such as smart watch 12, and/or smart phone 14 may include a variety of sensors that are able to be used to measure various lifestyle metrics, such as steps taken, calories expended, duration slept, duration sedentary, distance traveled, and/or others. For example, smart watch 12 and/or smart phone 14 may include an inertial measurement unit (IMU) interface 15 a/15 b configured to receive movement data that may be processed to determine a number of steps taken by a user wearing the smart watch 12 and/or carrying the smart phone 14. For example, the IMU and/or other hardware sensor may be integrated into the smart watch 12, smart phone 14, and/or other suitable computing device in communication with smart watch 12 and/or smart phone 14 to collect/measure the movement data. The data obtained via the sensors of smart watch 12, smart phone 14, and/or other suitable computing devices may be processed by the smart watch, processed by the smart phone, and/or processed by one or more remote computing devices (e.g., computing devices A-N) in communication with the smart watch and/or the smart phone via a network 16. It is to be understood that sensor data and/or other data indicating a progress toward a goal may be included in other devices that are in communication with smart watch 12 and/or smart phone 14. For example, one or more IMUs, gyroscopes, accelerometers, heartrate monitors, and/or other sensors may be placed in multiple locations on a user's body, attached to a user's clothes/shoes, and/or otherwise associated with the user. As another example, cameras mounted in an environment of a user may transmit image data to the smart watch 12 and/or smart phone 14 (e.g., directly and/or via another device or network). The image data may be able to be processed to assist in determining the user's progress toward a goal.

In examples where the goal relates to a number of steps taken in a unit of time, the smart watch 12 and/or smart phone 14 may include a step counter module 17 a/17 b. The step counter module may include hardware (e.g., a hardware processor or other logic device) that executes logic (e.g., instructions stored on a storage device, such as a storage device/memory integrated into and/or in communication with the smart watch 12 and/or smart phone 14) to determine a number of steps taken based on sensor data (e.g., from the IMU sensor 15 a/15 b). The step counter module 17 a/17 b may generate a number of steps taken and/or otherwise store a value indicative of a number of steps taken. For example, the step counter module may utilize memory in which a step value is stored and incremented each time a step is determined to be taken based on the sensor data. The step counter may reset upon completion of a duration associated with a sub-goal (e.g., every hour), completion of a duration associated with a goal (e.g., every day), and/or at another programmable time. The step counter may also be reset manually (e.g., based on user input requesting the step counter to be reset). In still other examples, the step counter may not be reset at regular intervals, and may keep a running total of a number of steps taken for a duration longer than the duration associated with the goal. In such examples, changes in the step counter value during durations associated with sub-goals or the goal may be recorded to determine progress toward the sub-goals/goal. Although a step counter module is described herein, it is to be understood that similar modules may be included in the smart watch 12 and/or smart phone 14 to track and store a value representing a progress toward completion of a goal (e.g., a number of words/pages written, a number of calories burned, an amount of time spent on an activity, a number of repetitions of an exercise completed, a distance traveled, etc.).

One or both of smart watch 12 and smart phone 14 may be configured to display goal assessment pages and/or otherwise indicate progress towards goal completion. In additional or in an alternative example, any one or more of computing devices A-N may be configured to display goal assessment pages and/or otherwise indicate the progress toward goal completion. In some examples, one or more of smart watch 12, smart phone 14, and computing devices A-N may generate display instructions to control display of the goal assessment pages and/or other displayable data for indicating progress toward goal completion. The device(s) that generate the display instructions may send the instructions to any of the other devices. For example, smart phone 14 may generate display instructions corresponding to visually presenting a goal assessment page for indicating progress toward completion of a goal. Smart phone 14 may then transmit the display instructions to any one or more of smart watch 12 and computing devices AN to enable that device(s) to display the goal assessment page on associated displays (e.g., display 19 a integrated into smart watch 12). Smart phone 14 may also display the goal assessment page on a display integrated within itself (e.g., display 19 b integrated into smart phone 14).

Smart watch 12 and smart phone 14 may include a communication interface, such as communication interface 21 a and 21 b, respectively, which may be configured to communicate with other devices via a wired and/or wireless connection. For example, smart watch 12 may communicate with smart phone 14 and/or computing devices A-N via communication interface 21 a. Smart phone 14 may communicate with smart watch 12 and/or computing devices A-N via communication interface 21 b. Any of the above-described communications may include direct and/or indirect communications utilizing wired and/or wireless communication mediums. Although network 16 is only illustrated as connecting smart phone 14 to computing devices A-N, it is to be understood that communications between any of the above devices may occur via network 16 and/or any other suitable network.

FIG. 2 shows an example goal assessment page 20 displayable by smart watch 12, smart phone 14, and/or another computing device. In the illustrated example, the goal assessment page relates to steps taken and includes a portion 22 where the goal is displayed as a target number of steps. In this case, the goal is 16,000 steps. While not included in the illustrated implementation, the goal assessment page also may include a portion that displays the number of steps already taken in the relevant day (e.g., 925 steps). Goal assessment page 20 also includes a portion 24 that indicates a distance corresponding to the target number of steps. Furthermore, the goal assessment page includes a graphical indicator 26 that indicates a relative progress towards completion of the goal. In particular, indicator 26 includes a semicircular arc that progressively fills as more steps are taken. When zero steps are taken, the arc is completely empty. When the goal is reached, the arc is completely full. Between zero and the goal, the arc indicates the relative percentage of steps taken towards the goal. In this case, the arc is approximately 5.8% filled because 925 steps already have been taken. The information provided by goal assessment page 20 is exemplary, and additional or alternative information may be provided.

As introduced above, the goal may dynamically change as any function of one or more variables. As an example, if the user takes 16,000 steps, the goal automatically may be changed to a challenge goal of 20,000 steps. FIG. 3 shows goal assessment page 20 after it has been dynamically updated for the 20,000 step challenge goal.

Portions of goal assessment page 20 may be color coded to further indicate progress towards goal completion. The color of a graphical progress indicator may be selected from a plurality of different colors, each different color indicating a different level of progress toward completing an aggregate goal (e.g., a goal aggregating each of a plurality of sub-goals). For example, graphical progress indicator 26 may be colored green when a user is easily on track to reach a goal (e.g., has completed or exceeded one or more sub-goals and/or is progressing toward the goal at a rate at which the goal will be met as long as the user continues progressing at that rate), colored red if the user is far behind pace to reach the goal (e.g., if the user has missed one or more sub-goals), and colored yellow if the user is just above or just below pace to reach the goal (e.g., if the user has missed one or more sub-goals but made one or more other sub-goals). These are only examples, and colors may be used in any way to indicate goal progress.

FIG. 4 shows an example sub-goal assessment page 40. In the illustrated example, the sub-goal assessment page relates to steps taken. In another example, the sub-goal assessment page may relate to other tracked activities (e.g., calories burned, words written, time spent doing an activity, and/or other tracked activities) in an analogous manner to the steps taken. In particular, sub-goal assessment page 40 includes a portion 42 where the overall (e.g., aggregate) goal is displayed as a target number of steps to be completed during an aggregate duration corresponding to a plurality of sub-goals making up that aggregate goal. In this case, the goal is 16,000 steps. The sub-goal assessment page also includes a portion 44 that displays the number of steps already taken in the relevant day. In this case, 925 steps have already been taken. Furthermore, the sub-goal assessment page includes a portion 46 that indicates a distance traveled and a portion 48 that indicates the relative percentage of steps taken towards the goal. In this case, 0.54 miles have been traveled and the user is approximately 5.8% of the way towards completion of the 16,000 step goal.

Sub-goal assessment page 40 also includes a portion 64 that indicates how many hours the user has been active in the relevant day. Such activity may be judged based on a threshold. In one implementation, a user will be considered active if they have taken any steps in a relevant hour. In another implementation, a user will be considered active if they have met at least 50% of their hourly step sub-goal. The information provided by sub-goal assessment page 40 is exemplary, and additional or alternative information may be provided.

Sub-goal assessment page 40 divides the 16,000 step goal of FIG. 2 into sixteen 1,000 steps-per-hour sub-goals. Each of the sixteen hours is given a bar along an x-axis 50 of a bar graph 52. In the illustrated scenario, the user has taken 98 steps from 6 am to 7 am, 254 steps from 7 am to 8 am, 573 steps from 8 am to 9 am, and no steps after 9 am.

The y-axis 54 of the bar graph may be scaled in any suitable manner. For example, a scale of the y-axis may include one or more values in units corresponding to the item being tracked (e.g., number of steps) selected and positioned based on a size of the scale. As one example, the y-axis initially may be scaled so that a third out of four ticks up the y-axis (e.g., 75% up the y-axis) corresponds to the hourly sub-goal (e.g., 1,000 steps). In other words, the initial scale has a maximum y-axis value that is 4/3 the sub-goal. This implementation is illustrated in FIG. 4, which shows the first tick 56 at 333 steps, the second tick 58 at 666 steps, the third tick 60 at 1,000 steps, and the fourth tick 62 at 1,333 steps. In other implementations, the y-axis may be scaled so that the hourly goal will correspond to a different portion of the y-axis (e.g., 50%, 66.6%, 80%, or another percentage up the y-axis). In still other implementations, ticks on the y-axis may be set to values rounded to the nearest ten, hundred, or thousand, for example, 330 and 670 or 300 and 700.

The y-axis 54 of bar graph 52 may be dynamically changed as a function of one or more variables. As one example, the scale of the y-axis may be expanded responsive to a user meeting or exceeding the 1,000 step-per-hour sub-goal in any hour. Other threshold may be used for expanding the y-axis—e.g., the initial maximum y-axis value, the initial 50% y-axis value, or any other value.

FIG. 5 shows an example scenario where a user has 1,891 steps from 9 am to 10 am, which exceeds the y-axis scale of bar graph 52 in FIG. 4. To accommodate this high hourly step count, y-axis 54 of bar graph 52 is scaled such that the highest hourly step count (e.g., 1,891 steps) is 75% up the y-axis. As such, first tick 56 is adjusted from 333 steps to 630 steps; second tick 58 is adjusted from 666 steps to 1260 steps; third tick 60 is adjusted from 1,000 steps to 1,891 steps; and fourth tick 62 is adjusted from 1,333 steps to 2,520 steps. In other words, the expanded scale has a maximum y-axis value that is 4/3 the highest count for any of the recorded durations. This scaling is provided as a non-limiting example, and other scalings may be used. Further, the scaling need not be a function of the highest recorded step count. As one alternative, the expanded scale could be 3/2, or any other fraction, of the initial scale.

An expanded scale may be further expanded responsive to a user meeting or exceeding an expanded threshold. For example, if the y-axis is first scaled from 1,333 to 2,520; the y-axis subsequently may be scaled from 2,520 to 3,000 (or another value) responsive to the user exceeding 1,891 steps (or another threshold).

In the above-described examples, a bar graph is used to present data regarding progress toward goals and/or sub-goals. In other examples, the data may be similarly presented via other types of visual and/or graphical representations. For example, a scatter plot, line graph, or other graph having one or more axes may be utilized such that at least one of the axes is scaled as described above with reference to the y-axis of the bar graph.

For example, one or more pie charts may be utilized to visually present progress toward goals and/or sub-goals. In such an example, a radial axis of the pie chart may be scaled in a manner that is analogous to the manner in which the y-axis is scaled in the bar graph examples described herein. For example, data represented in a pie chart may occupy a “slice” of the pie chart that has an arc length extending around a portion of the radial axis of the pie chart (e.g., the circumference of the pie chart). The scale of the radial axis indicates how many points of data (e.g., how many steps) are represented by a particular arc length. For a pie chart having a constant size (e.g., radius), increasing a scale of the radial axis of the pie chart causes the data value (e.g., number of steps) represented by a slice having a selected arc length to increase. Put another way, for a pie chart having a constant size (e.g., radius), a representation of a selected data value (e.g., 1,333 steps) may occupy a first slice of the pie chart having a first arc length. Increasing a scale of the radial axis of the pie chart causes the representation of the selected data value (e.g., 1,333 steps) to decrease to occupy a smaller slice and correspondingly smaller arc length.

FIG. 6 shows a flow chart of an example method 600 for tracking progress toward a goal. For example, method 600 may be performed by any suitable computing device, including smart watch 12, smart phone 14, and/or computing devices A-N of FIG. 1. In some examples, some portions of the method 600 may be performed by one or more devices while other portions of the method 600 may be performed by one or more other devices. At 602, method 600 includes visually presenting, via a display, a bar graph with a y-axis having an initial scale. The initial scale may include one or more values, such as different numbers of steps, representing subdivisions of a sub-goal or goal.

At 604, the method includes, for each of a plurality of successive durations, receiving a completion magnitude indicative of progress towards completion of a sub-goal for that duration. For example, as indicated at 606, the sub-goal may include a number of steps, and the completion magnitude may be indicative of a number of steps taken during the duration being evaluated. At 608, the method includes, for each duration, determining whether the completion magnitude for that duration exceeds the threshold associated with that duration. If the completion magnitude does not exceed the threshold (e.g., “NO” at 608), the method proceeds to 610 to progress to the next duration (e.g., to start counting a number of steps for a next sub-goal) and returns to 604 to receive a completion magnitude for that next successive duration (e.g., after the duration has elapsed).

If the completion magnitude does exceed the threshold (e.g., “YES” at 608), the method proceeds to 612 to automatically increase a scale of the y-axis to an expanded scale that is greater than the initial scale. In this way, the y-axis may be expanded responsive to the completion magnitude exceeding a threshold for any duration. At 614, the method includes, for each of the plurality of successive durations, visually presenting via the display a bar on the bar graph, the bar having a length that visually indicates, relative to the y-axis, the completion magnitude for that duration. In this way, the method 600 may be performed to generate a goal assessment page, such as the goal assessment page examples illustrated in FIGS. 2-5. In another example, goals are tracked via other types of graphs (e.g., a line graph, a scatter plot, a pie chart, and/or another graphical representation) that have one or more axes that are scaled as described above with respect to the y-axis of the bar graph. In such an example, the method may include presenting via the display a graphical element (e.g., a bar, a line, a dot, a slice, and/or another visual element) of the graph, the graphical element having a size (e.g., length, width, height, area, arc length, angle, and/or other dimensional size) and/or location (e.g., height above an axis) that visually indicates, relative to the scaled axis of the graph, the completion magnitude for that duration.

In some implementations, the methods and processes described herein may be tied to a computing system of one or more computing devices. In particular, such methods and processes may be implemented as a computer-application program or service, an application-programming interface (API), a library, and/or other computer-program product.

FIG. 7 schematically shows a non-limiting example of a computing system 700 that can enact one or more of the methods and processes described above. Computing system 700 is shown in simplified form. Computing system 700 may take the form of one or more wearable devices (e.g., smart watch), mobile communication devices (e.g., smart phone), mobile computing devices, personal computers, server computers, tablet computers, home-entertainment computers, network computing devices, gaming devices, and/or other computing devices.

Computing system 700 includes a logic machine 702, and a storage machine 704. Computing system 700 may optionally include a display subsystem 706, input subsystem 708, communication subsystem 710, and/or other components not shown in FIG. 7.

Logic machine 702 includes one or more physical devices configured to execute instructions. For example, the logic machine may be configured to execute instructions that are part of one or more applications, services, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.

The logic machine may include one or more processors configured to execute software instructions. Additionally or alternatively, the logic machine may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. Processors of the logic machine may be single-core or multi-core, and the instructions executed thereon may be configured for sequential, parallel, and/or distributed processing. Individual components of the logic machine optionally may be distributed among two or more separate devices, which may be remotely located and/or configured for coordinated processing. Aspects of the logic machine may be virtualized and executed by remotely accessible, networked computing devices configured in a cloud-computing configuration.

Storage machine 704 includes one or more physical devices configured to hold instructions executable by the logic machine to implement the methods and processes described herein. When such methods and processes are implemented, the state of storage machine 704 may be transformed—e.g., to hold different data.

Storage machine 704 may include removable and/or built-in devices. Storage machine 704 may include optical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory (e.g., RAM, EPROM, EEPROM, etc.), and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tape drive, MRAM, etc.), among others. Storage machine 704 may include volatile, non-volatile, dynamic, static, read/write, read-only, random-access, sequential-access, location-addressable, file-addressable, and/or content-addressable devices.

It will be appreciated that storage machine 704 includes one or more physical devices. However, aspects of the instructions described herein alternatively may be propagated by a communication medium (e.g., an electromagnetic signal, an optical signal, etc.) that is not held by a physical device for a finite duration.

Aspects of logic machine 702 and storage machine 704 may be integrated together into one or more hardware-logic components. Such hardware-logic components may include field-programmable gate arrays (FPGAs), program- and application-specific integrated circuits (PASIC/ASICs), program- and application-specific standard products (PSSP/ASSPs), system-on-a-chip (SOC), and complex programmable logic devices (CPLDs), for example.

The terms “module,” “program,” and “engine” may be used to describe an aspect of computing system 700 implemented to perform a particular function. In some cases, a module, program, or engine may be instantiated via logic machine 702 executing instructions held by storage machine 704. It will be understood that different modules, programs, and/or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and/or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.

It will be appreciated that a “service”, as used herein, is an application program executable across multiple user sessions. A service may be available to one or more system components, programs, and/or other services. In some implementations, a service may run on one or more server-computing devices.

When included, display subsystem 706 may be used to present a visual representation of data held by storage machine 704. For example, displays 19 a and 19 b of smart watch 12 and smart phone 14, respectively, in FIG. 1 are example display subsystems 706. The visual representation of data held by storage machine 704 may take the form of a graphical user interface (GUI). As the herein described methods and processes change the data held by the storage machine, and thus transform the state of the storage machine, the state of display subsystem 706 may likewise be transformed to visually represent changes in the underlying data. Display subsystem 706 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic machine 702 and/or storage machine 704 in a shared enclosure, or such display devices may be peripheral display devices.

When included, input subsystem 708 may comprise or interface with one or more user-input devices such as a keyboard, mouse, touch screen, or game controller. In some implementations, the input subsystem may comprise or interface with selected natural user input (NUI) componentry. Such componentry may be integrated or peripheral, and the transduction and/or processing of input actions may be handled on- or off-board. Example NUI componentry may include a microphone for speech and/or voice recognition; an infrared, color, stereoscopic, and/or depth camera for machine vision and/or gesture recognition; a head tracker, eye tracker, accelerometer, and/or gyroscope for motion detection and/or intent recognition; as well as electric-field sensing componentry for assessing brain activity. For example, inertial measurement unit (IMU) 15 a and 15 b of smart watch 12 and smart phone 14, respectively, of FIG. 1 are examples of sensors that may be included in input subsystem 708.

When included, communication subsystem 710 may be configured to communicatively couple computing system 700 with one or more other computing devices. Communication subsystem 710 may include wired and/or wireless communication devices compatible with one or more different communication protocols. As non-limiting examples, the communication subsystem may be configured for communication via a wireless telephone network, or a wired or wireless local-or wide-area network. In some implementations, the communication subsystem may allow computing system 700 to send and/or receive messages to and/or from other devices via a network such as the Internet. For example, communication interface 21 a and 21 b of smart watch 12 and smart phone 14, respectively, of FIG. 1 are examples of interfaces that may be included in a communication subsystem 710.

Another example provides a computing system, including a display, an inertial measurement unit interface configured to receive movement data from an inertial measurement unit, a logic machine, and a storage machine holding instructions executable by the logic machine to calculate a step count based on the movement data from the inertial measurement unit, visually present via the display a graph with an axis having an initial scale including one or more values in units of steps, for each of a plurality of successive durations, receive a completion magnitude indicative of progress towards completion of a sub-goal for that duration, the sub-goal including a first threshold number of steps and the completion magnitude including a measured number of steps measured by the inertial measurement unit during that duration, automatically increase a scale of the axis to an expanded scale that is greater than the initial scale based on the completion magnitude exceeding a second threshold for any duration, and for each of the plurality of successive durations, visually present via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration. Any or all of the above-described examples may be combined in any suitable manner in various implementations.

Another example provides a computing system, including a display, a logic machine, and a storage machine holding instructions executable by the logic machine to visually present via the display a graph with an axis having an initial scale, for each of a plurality of successive durations, receive a completion magnitude indicative of progress towards completion of a sub-goal for that duration, automatically increase a scale of the axis to an expanded scale that is greater than the initial scale based on the completion magnitude exceeding a threshold for any duration, and, for each of the plurality of successive durations, visually present via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration. In such an example, the sub-goal may additionally or alternatively be a number of steps. In such an example, the completion magnitude may additionally or alternatively be indicative of a number of steps taken during an associated duration. In such an example, the initial scale may additionally or alternatively have a maximum axis value that is at least 4/3 of the sub-goal. In such an example, the expanded scale may additionally or alternatively have a maximum axis value that is at least 4/3 of a largest completion magnitude. In such an example, the threshold may additionally or alternatively be the sub-goal. In such an example, the computing system may additionally or alternatively further include a communication subsystem configured to wirelessly communicate with a wearable device that collects data from which the completion magnitude is derived. In such an example, the instructions may additionally or alternatively be further executable to send display instructions to a display of the wearable device to visually present via the display of the wearable device the graphical element on the bar graph. In such an example, the computing system may additionally or alternatively further include one or more sensors configured to take measurements useable to calculate the completion magnitude for each of the plurality of successive durations. In such an example, the instructions may additionally or alternatively be further executable to visually present a progress indicator having a color selected from a plurality of different colors, each different color indicating a different level of progress toward completing an aggregate goal, the aggregate goal aggregating each of a plurality of sub-goals. In such an example, the aggregate goal may additionally or alternatively be a target number of steps to be completed during an aggregate duration corresponding to the plurality of sub-goals. In such an example, the instructions may additionally or alternatively be further executable to automatically increase the target number of steps to a challenge target number of steps responsive to determining that the target number of steps are on track for completion in less than the aggregate duration. Any or all of the above-described examples may be combined in any suitable manner in various implementations.

Another example provides, on a computing system including a display, a method for tracking and visually presenting progress toward a goal, the method including visually presenting via the display a graph with an axis having an initial scale, for each of a plurality of successive durations, receiving a completion magnitude indicative of progress towards completion of a sub-goal for that duration, responsive to the completion magnitude exceeding a threshold for any duration, automatically increasing a scale of the axis to an expanded scale that is greater than the initial scale, and, for each of the plurality of successive durations, visually presenting via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration. In such an example, the sub-goal may additionally or alternatively be a number of steps and wherein the completion magnitude is indicative of a number of steps taken during an associated duration. In such an example, the initial scale may additionally or alternatively have a maximum y-axis value that is at least 4/3 of the sub-goal. In such an example, the expanded scale may additionally or alternatively have a maximum y-axis value that is at least 4/3 of a largest completion magnitude. In such an example, the threshold may additionally or alternatively be the sub-goal. In such an example, the method may additionally or alternatively further include visually presenting a progress indicator having a color selected from a plurality of different colors, each different color indicating a level of progress toward completing a target number of steps within a target duration. In such an example, the method may additionally or alternatively further include automatically increase the target number of steps to a challenge target number of steps responsive to determining that the target number of steps are on track for completion in less than the target duration. Any or all of the above-described examples may be combined in any suitable manner in various implementations.

It will be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated and/or described may be performed in the sequence illustrated and/or described, in other sequences, in parallel, or omitted. Likewise, the order of the above-described processes may be changed.

The subject matter of the present disclosure includes all novel and non-obvious combinations and sub-combinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof. 

1. A computing system, comprising: a display; an inertial measurement unit interface configured to receive movement data from an inertial measurement unit; a logic machine; and a storage machine holding instructions executable by the logic machine to: calculate a step count based on the movement data from the inertial measurement unit; visually present via the display a graph with an axis having an initial scale including one or more values in units of steps; for each of a plurality of successive durations, receive a completion magnitude indicative of progress towards completion of a sub-goal for that duration, the sub-goal comprising a first threshold number of steps and the completion magnitude comprising a measured number of steps measured by the inertial measurement unit during that duration; automatically increase a scale of the axis to an expanded scale that is greater than the initial scale based on the completion magnitude exceeding a second threshold for any duration; and for each of the plurality of successive durations, visually present via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration.
 2. A computing system, comprising: a display; a logic machine; and a storage machine holding instructions executable by the logic machine to: visually present via the display a graph with an axis having an initial scale; for each of a plurality of successive durations, receive a completion magnitude indicative of progress towards completion of a sub-goal for that duration; automatically increase a scale of the axis to an expanded scale that is greater than the initial scale based on the completion magnitude exceeding a threshold for any duration; and for each of the plurality of successive durations, visually present via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration.
 3. The computing system of claim 2, wherein the sub-goal is a number of steps.
 4. The computing system of claim 2, wherein the completion magnitude is indicative of a number of steps taken during an associated duration.
 5. The computing system of claim 2, wherein the initial scale has a maximum axis value that is at least 4/3 of the sub-goal.
 6. The computing system of claim 2, wherein the expanded scale has a maximum axis value that is at least 4/3 of a largest completion magnitude.
 7. The computing system of claim 2, wherein the threshold is the sub-goal.
 8. The computing system of claim 2, further including a communication subsystem configured to wirelessly communicate with a wearable device that collects data from which the completion magnitude is derived.
 9. The computing system of claim 8, wherein the instructions are further executable to send display instructions to a display of the wearable device to visually present via the display of the wearable device the graphical element on the bar graph.
 10. The computing system of claim 2, further including one or more sensors configured to take measurements useable to calculate the completion magnitude for each of the plurality of successive durations.
 11. The computing system of claim 2, wherein the instructions are further executable to visually present a progress indicator having a color selected from a plurality of different colors, each different color indicating a different level of progress toward completing an aggregate goal, the aggregate goal aggregating each of a plurality of sub-goals.
 12. The computing system of claim 11, wherein the aggregate goal is a target number of steps to be completed during an aggregate duration corresponding to the plurality of sub-goals.
 13. The computing system of claim 12, wherein the instructions are further executable to automatically increase the target number of steps to a challenge target number of steps responsive to determining that the target number of steps are on track for completion in less than the aggregate duration.
 14. On a computing system comprising a display, a method for tracking and visually presenting progress toward a goal, the method comprising: visually presenting via the display a graph with an axis having an initial scale; for each of a plurality of successive durations, receiving a completion magnitude indicative of progress towards completion of a sub-goal for that duration; responsive to the completion magnitude exceeding a threshold for any duration, automatically increasing a scale of the axis to an expanded scale that is greater than the initial scale; and for each of the plurality of successive durations, visually presenting via the display a graphical element on the graph, the graphical element having a size that visually indicates, relative to the axis, the completion magnitude for that duration.
 15. The method of claim 14, wherein the sub-goal is a number of steps and wherein the completion magnitude is indicative of a number of steps taken during an associated duration.
 16. The method of claim 14, wherein the initial scale has a maximum y-axis value that is at least 4/3 of the sub-goal.
 17. The method of claim 14, wherein the expanded scale has a maximum y-axis value that is at least 4/3 of a largest completion magnitude.
 18. The method of claim 14, wherein the threshold is the sub-goal.
 19. The method of claim 14, further comprising visually presenting a progress indicator having a color selected from a plurality of different colors, each different color indicating a level of progress toward completing a target number of steps within a target duration.
 20. The method of claim 19, further comprising automatically increase the target number of steps to a challenge target number of steps responsive to determining that the target number of steps are on track for completion in less than the target duration. 